package string;
/**
 * java.lang.StringBuilder
 * StringBuilder是用于修改字符串的一个工具类，内部维护一个可变的char数组，提供了便于修改
 * 字符串的相关方法(增删改插)
 */
public class StringBuilderDemo {
    public static void main(String[] args) {
        StringBuilder builder=new StringBuilder("好好学习java");
        System.out.println(builder);

        /**1: 对象.append：在原字符串最后追加内容-------------------------
                好好学习java
                     V
                好好学习java,为了找个好工作
         */
        builder.append("，为了找个好工作");
        System.out.println(builder);

        //如果我想把改好的builder字符串拿过来用，比如给传递到新的字符串str
        //String str=builder  //编译错误，这样不行

        //调用builder的方法:对象.toString(),方法把对象的字符串拿过来
        String str=builder.toString();//使用方法.toString()
        System.out.println(builder);

        /**2: 对象.replace：将指定范围内的原字符串内容替换为新的字符串内容（含头不含尾）
            好好学习java,为了找个好工作
                   V
            好好学习java,就是为了改变世界

         */
        builder.replace(9,16,"就是为了改变世界");
        System.out.println(builder);

        /**3: 对象.delete:删除指定范围内的字符串--------------------------
         好好学习java,就是为了改变世界
                V
         ,就是为了改变世界
         */
        builder.delete(0,8);
        System.out.println(builder);

        /**4: 对象.insert：将给定内容插入到指定位置
         ,就是为了改变世界
               V
         活着,就是为了改变世界
         */
        builder.insert(0,"活着");//0是插入字符串的第一个起始位置
        System.out.println(builder);

        //反转字符串
        builder.reverse();
        System.out.println(builder);

        /**
           注意：StringBuilder提供的增删改查方法，返回值还是对象本身，builder
           所以，一系列操作，可以放在一起执行，一次写完！没必要每次都builder.
         */
        builder.append(",为了找个好工作")
                .replace(9,16,"就是为了改变世界")
                .delete(0,8)
                .insert(0,"活着")
                .reverse();
        System.out.println(builder);
    }
}
